/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Instrutor;

import Geral.ErroInternoException;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Ivaldo
 */
@Stateless
public class CadastroInstrutor {
    
    @EJB
    private IRepositorioInstrutor repIns;
    
    public CadastroInstrutor(){
        
    }
    
    public void adicionar(Instrutor ins) throws ErroInternoException, InstrutorExistenteException, InstrutorInexistenteException{
        try{
            Instrutor ins2 = repIns.buscarInstrutor(ins.getId());
            if(ins2 != null){
                throw new InstrutorExistenteException();
            }
        }catch(InstrutorInexistenteException e){
            this.repIns.adicionar(ins);
        }
    }
    
    public Instrutor buscarInstrutor(long id_instrutor) throws InstrutorInexistenteException, ErroInternoException{
        try{
            return this.repIns.buscarInstrutor(id_instrutor);
        }catch(ErroInternoException e){
            throw new ErroInternoException(e);
        }
    }
    
    public void atualizar(Instrutor ins) throws InstrutorInexistenteException, ErroInternoException{
        this.repIns.atualizar(ins);
    }
    
    public void remover(long id_instrutor) throws ErroInternoException, InstrutorInexistenteException{
        this.repIns.remover(id_instrutor);
    }
    
    public Instrutor loginInstrutor(String login, String senha) throws InstrutorInexistenteException, ErroInternoException{
        return this.repIns.loginInstrutor(login, senha);
    }
    
    public List<Instrutor> listaInstrutores(Instrutor ins) throws ErroInternoException{
        return this.repIns.listaInstrutor(ins);
    }
    
    public Instrutor listaInstrutorNome(String nome) throws ErroInternoException, InstrutorInexistenteException{
        return this.repIns.buscarInstrutorPorNome(nome);
    }
}
